Mastering Partial Payments: Strategies for Enhancing Customer Payment Flexibility

Housing is not only where someone will live but also where they will build a safe home for them to grow. In many cities across the United States, it is common for renters to spend 30% or more of their income on housing costs, which is often considered the threshold for affordability.

In some urban cities and high-cost cities like San Francisco and New York, a significant percentage of renters were classified as “rent-burdened,” meaning they spent over 50% of their income on rent.

Although Europe has many safety nets for affordable housing for residents, a similar percentage of income may go toward rent. In the same way, for cities like London, Paris, or even Madrid, where housing costs are high, many renters may spend a significant portion of their income on rent.

You can accept payments for something paying rent and keep a record of the amount paid until the full amount has been received.

You use partial payments if you are housing low-income residents or a community that typically uses cash payments or bank transfers.

Create a Payment

Request


{
"amount": 1000,
"currency": "EUR",
"payment_method": {
"type": "es_telepayespana_cash"
}
}

Response

{
"status": {
"error_code": "",
"status": "SUCCESS",
"message": "",
"response_code": "",
"operation_id": "273bdbcb-71ca-4841-ae03-f10d50155a4e"
},

"data": {
"id": "payment_f50ddea4eb494a9cc197ccac4eec4f5a",
"amount": 0,
"original_amount": 1000,
"is_partial": false,
"currency_code": "EUR",
"country_code": "es",
"status": "ACT",
"description": "",
"merchant_reference_id": "",
"customer_token": "cus_41dd150b17399a646042b12418e3d45d",
"payment_method": "other_8487fd70afd7701956c4088bb5ee0b0a",
"payment_method_data": {
"id": "other_8487fd70afd7701956c4088bb5ee0b0a",
"type": "es_telepayespana_cash",
"category": "cash",
"metadata": {},
"image": "",
"webhook_url": "",
"supporting_documentation": "",
"next_action": "not_applicable"
},
"auth_code": null,
"expiration": 1697757326,
"captured": true,
"refunded": false,
"refunded_amount": 0,
"receipt_email": "",
"redirect_url": "",
"complete_payment_url": "",
"error_payment_url": "",
"receipt_number": "",
"flow_type": "",
"address": null,
"statement_descriptor": "Test Business",
"transaction_id": "",
"created_at": 1696547726,
"metadata": {},
"failure_code": "",
"failure_message": "",
"paid": false,
"paid_at": 0,
"dispute": null,
"refunds": null,
"order": null,
"outcome": null,
"visual_codes": {},
"textual_codes": {
"MinLimit": "0",
"PaymentLimit": "999.99",
"AgreementCode": "TELEINGRESO",
"TransactionID": "261649811",
"PaymentReference": "261649811",
"EmailExpirationTime": "25 mar -04:00 p.m"
},
"instructions": [
{
"name": "instructions",
"steps": [
{
"step1": "Scan or show your transaction code to the cashier and pay the amount"
}
]
}
],
"ewallet_id": "ewallet_db4ad4a76278f94c4a83dd9b28b483ed",
"ewallets": [

{
"ewallet_id": "ewallet_db4ad4a76278f94c4a83dd9b28b483ed",
"amount": 1000,
"percent": 100,
"refunded_amount": 0
}

],
"payment_method_options": {},
"payment_method_type": "es_telepayespana_cash",
"payment_method_type_category": "cash",
"fx_rate": 1,
"merchant_requested_currency": null,
"merchant_requested_amount": null,
"fixed_side": "",
"payment_fees": null,
"invoice": "",
"escrow": null,
"group_payment": "",
"cancel_reason": null,
"initiation_type": "customer_present",
"mid": "",
"next_action": "pending_confirmation",
"error_code": "",
"remitter_information": {},
"save_payment_method": true
}

}

Complete Payment

Simulating a Partial Payment will mark as Fully Paid

You may not be able to simulate a partial payment, but the following complete payment request would represent the payment being partially paid by bank transfer via the customer. A complete payment simulation will mark as fully paid.

{
    "token": "payment_f50ddea4eb494a9cc197ccac4eec4f5a",
    "param1": "other_8487fd70afd7701956c4088bb5ee0b0a",
    "param2": "500"
    
}

Response

{
    "status": {
        "error_code": "",
        "status": "SUCCESS",
        "message": "",
        "response_code": "",
        "operation_id": "78e375fe-f2a7-4598-877e-80748ed0013b"
    },
    "data": {
        "id": "payment_f50ddea4eb494a9cc197ccac4eec4f5a",
        "amount": 500,
        "original_amount": 1000,
        "is_partial": false,
        "currency_code": "EUR",
        "country_code": "es",
        "status": "CLO",
        "description": "",
        "merchant_reference_id": "",
        "customer_token": "cus_41dd150b17399a646042b12418e3d45d",
        "payment_method": "other_8487fd70afd7701956c4088bb5ee0b0a",
        "payment_method_data": {
            "id": "other_8487fd70afd7701956c4088bb5ee0b0a",
            "type": "es_telepayespana_cash",
            "category": "cash",
            "metadata": {},
            "image": "",
            "webhook_url": "",
            "supporting_documentation": "",
            "next_action": "not_applicable"
        },
        "auth_code": null,
        "expiration": 1697757326,
        "captured": true,
        "refunded": false,
        "refunded_amount": 0,
        "receipt_email": "",
        "redirect_url": "",
        "complete_payment_url": "",
        "error_payment_url": "",
        "receipt_number": "",
        "flow_type": "",
        "address": null,
        "statement_descriptor": "Test Business",
        "transaction_id": "",
        "created_at": 1696547726,
        "metadata": {},
        "failure_code": "",
        "failure_message": "",
        "paid": true,
        "paid_at": 1696547748,
        "dispute": null,
        "refunds": null,
        "order": null,
        "outcome": null,
        "visual_codes": {},
        "textual_codes": {
            "MinLimit": "0",
            "PaymentLimit": "999.99",
            "AgreementCode": "TELEINGRESO",
            "TransactionID": "261649811",
            "PaymentReference": "261649811",
            "EmailExpirationTime": "25 mar -04:00 p.m"
        },
        "instructions": [
            {
                "name": "instructions",
                "steps": [
                    {
                        "step1": "Scan or show your transaction code to the cashier and pay the amount"
                    }
                ]
            }
        ],
        "ewallet_id": "ewallet_db4ad4a76278f94c4a83dd9b28b483ed",
        "ewallets": [
            {
                "ewallet_id": "ewallet_db4ad4a76278f94c4a83dd9b28b483ed",
                "amount": 500,
                "percent": 100,
                "refunded_amount": 0
            }
        ],
        "payment_method_options": {},
        "payment_method_type": "es_telepayespana_cash",
        "payment_method_type_category": "cash",
        "fx_rate": 1,
        "merchant_requested_currency": null,
        "merchant_requested_amount": null,
        "fixed_side": "",
        "payment_fees": null,
        "invoice": "",
        "escrow": null,
        "group_payment": "",
        "cancel_reason": null,
        "initiation_type": "customer_present",
        "mid": "",
        "next_action": "not_applicable",
        "error_code": "",
        "remitter_information": {},
        "save_payment_method": true
    }
}

Webhook Response

You can see the cashier at the POS system has marked the payment as partially paid with “is_partial”: true, and The payment is partially complete in the description.

{
  "id": "wh_6c162dcb6bbc3df3a0e373af0bb97279",
  "type": "PAYMENT_COMPLETED",
  "data": {
    "id": "payment_f50ddea4eb494a9cc197ccac4eec4f5a",
    "mid": "",
    "paid": true,
    "order": null,
    "amount": 500,
    "escrow": null,
    "status": "CLO",
    "address": null,
    "dispute": null,
    "fx_rate": 1,
    "invoice": "",
    "outcome": null,
    "paid_at": 1696547748,
    "refunds": null,
    "captured": true,
    "ewallets": [
      {
        "amount": 500,
        "percent": 100,
        "ewallet_id": "ewallet_db4ad4a76278f94c4a83dd9b28b483ed",
        "refunded_amount": 0
      }
    ],
    "metadata": {},
    "refunded": false,
    "auth_code": null,
    "flow_type": "",
    "created_at": 1696547726,
    "error_code": "",
    "ewallet_id": "ewallet_db4ad4a76278f94c4a83dd9b28b483ed",
    "expiration": 1697757326,
    "fixed_side": "",
    "is_partial": true,
    "description": "The payment is partially complete",
    "next_action": "not_applicable",
    "country_code": "es",
    "failure_code": "",
    "instructions": [
      {
        "name": "instructions",
        "steps": [
          {
            "step1": "Scan or show your transaction code to the cashier and pay the amount"
          }
        ]
      }
    ],
    "payment_fees": null,
    "redirect_url": "",
    "visual_codes": {},
    "cancel_reason": null,
    "currency_code": "EUR",
    "group_payment": "",
    "receipt_email": "",
    "textual_codes": {
      "MinLimit": "0",
      "PaymentLimit": "999.99",
      "AgreementCode": "TELEINGRESO",
      "TransactionID": "261649811",
      "PaymentReference": "261649811",
      "EmailExpirationTime": "25 mar -04:00 p.m"
    },
    "customer_token": "cus_41dd150b17399a646042b12418e3d45d",
    "payment_method": "other_8487fd70afd7701956c4088bb5ee0b0a",
    "receipt_number": "",
    "transaction_id": "",
    "failure_message": "",
    "initiation_type": "customer_present",
    "original_amount": 1000,
    "refunded_amount": 0,
    "error_payment_url": "https://docs.rapyd.net",
    "payment_method_data": {
      "id": "other_8487fd70afd7701956c4088bb5ee0b0a",
      "type": "es_telepayespana_cash",
      "image": "",
      "category": "cash",
      "metadata": {},
      "next_action": "not_applicable",
      "webhook_url": "",
      "supporting_documentation": ""
    },
    "payment_method_type": "es_telepayespana_cash",
    "save_payment_method": true,
    "complete_payment_url": "https://rapyd.net",
    "remitter_information": {},
    "statement_descriptor": "Test Business",
    "merchant_reference_id": "",
    "payment_method_options": {},
    "merchant_requested_amount": null,
    "merchant_requested_currency": null,
    "payment_method_type_category": "cash"
  },
  "trigger_operation_id": "78e375fe-f2a7-4598-877e-80748ed0013b",
  "status": "NEW",
  "created_at": 1696547748
}

The client or merchant can now generate payment request or checkout request to complete the payment, when the customer is ready.

1 Like