LPG Id Verification

1 endpoint · Core API

What is LPG ID Verification?

The LPG ID Verification API validates 17-digit LPG IDs issued by LPG suppliers across India, ensuring the secure authentication of LPG connections. It enables reliable access to information related to LPG connections, enhancing the overall authentication process and ensuring the legitimacy of connections nationwide. By offering seamless verification, this API plays a crucial role in preventing unauthorized access and fraudulent activities associated with LPG connections. With its robust authentication mechanism, it provides peace of mind to both consumers and suppliers, fostering trust and transparency in the LPG supply chain.

Benefits

  • 1. Secure authentication of LPG connections
  • 2. Reliable access to information related to LPG IDs
  • 3. Prevention of unauthorized access and fraudulent activities
  • 4. Enhanced trust and transparency in the LPG supply chain

What you can do

This API verifies 17-digit LPG IDs issued by LPG suppliers nationwide, ensuring secure authentication of LPG connections and facilitating reliable access to information.

No biller code needed — the LPG ID identifies everything.

This API accepts only the 17-digit LPG ID. You do not need to send a separate biller or service-provider field: the LPG ID itself encodes the oil company and the distributor.

The distributor is returned to you in the response — distributorCode, distributorName and distributorAddress.

Supported LPG service providers

We currently support all 3 LPG oil companies in India:

#Service provider
1Bharat Gas
2HP
3Indane Gas
POST

/api/v1/lpg-id/verify

#

Get LPG Id verification details

docs.signcare.io/core/api/utility-bills/lpg-id-verification/#post-api-v1-lpg-id-verify

Headers

  • X-API-KEY
    stringrequired
    Your secret API key for the environment you are calling (Stage and Live use different keys).
  • X-API-APP-ID
    stringrequired
    The App ID issued together with the key.
  • Content-Type
    stringrequired
    application/json

Body parameters

application/json
  • consent
    stringrequired
    Required. The end user's consent to this verification. Send `Y`.
    minLength 1default Y
  • consent_text
    stringrequired
    Required. The consent statement shown to the end user. Send the default text from the sample.
    minLength 1default I hear by declare my consent agreeme…
  • request_id
    stringoptional
    Optional. Your own id to correlate this call in your logs. A unique id is generated if you leave it out.
    nullable
  • lpgId
    stringrequired
    Required. The 17-digit LPG ID printed on the consumer card, digits only (0-9). It identifies the oil company and distributor. Do not send the shorter distributor consumer number.
    length 17pattern ^\d{17}$default 10000000051234567
Sample request body
{ "consent": "Y", "consent_text": "I hear by declare my consent agreement for fetching my information via SignCare API", "lpgId": "10000000051234567" }

Responses

200OK
  • success
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 200
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • data
    objectoptional
    Response model containing LPG ID verification details.
    20 fields
    • status
      stringoptional
      Gets or sets the status of the LPG connection.
      nullable
    • approximateSubsidyAvailed
      stringoptional
      Gets or sets the approximate subsidy amount availed by the consumer.
      nullable
    • subsidizedRefillConsumed
      stringoptional
      Gets or sets the number of subsidized refills consumed.
      nullable
    • pin
      stringoptional
      Gets or sets the PIN code of the consumer's address.
      nullable
    • consumerEmail
      stringoptional
      Gets or sets the email address of the consumer.
      nullable
    • distributorCode
      stringoptional
      Gets or sets the distributor code.
      nullable
    • bankName
      stringoptional
      Gets or sets the name of the bank linked to the subsidy account.
      nullable
    • ifscCode
      stringoptional
      Gets or sets the IFSC code of the linked bank branch.
      nullable
    • cityTown
      stringoptional
      Gets or sets the city or town of the consumer.
      nullable
    • aadhaarNo
      stringoptional
      Gets or sets the Aadhaar number linked to the LPG connection.
      nullable
    • consumerContact
      stringoptional
      Gets or sets the contact number of the consumer.
      nullable
    • distributorAddress
      stringoptional
      Gets or sets the address of the distributor.
      nullable
    • consumerName
      stringoptional
      Gets or sets the name of the consumer.
      nullable
    • consumerNo
      stringoptional
      Gets or sets the consumer number.
      nullable
    • distributorName
      stringoptional
      Gets or sets the name of the distributor.
      nullable
    • bankAccountNo
      stringoptional
      Gets or sets the bank account number linked to the subsidy.
      nullable
    • givenUpSubsidy
      stringoptional
      Gets or sets whether the consumer has given up the LPG subsidy.
      nullable
    • consumerAddress
      stringoptional
      Gets or sets the address of the consumer.
      nullable
    • lastBookingDate
      stringoptional
      Gets or sets the date of the last LPG refill booking.
      nullable
    • totalRefillConsumed
      stringoptional
      Gets or sets the total number of refills consumed.
      nullable
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • isBillable
    booleanoptional
    Whether this request was charged: true if it was, false if not. Errors always show false. Flows that finish later (ITR Fetch, SHCIL eStamp, DigiLocker, eSign) show false here, because the charge is made when the result is ready. eSign charges each signer when they complete signing. DigiLocker deducts the credit when the link is created and refunds it automatically if the link expires before the user completes it.
Example
{ "success": false, "statusCode": 200, "message": "XXXXX", "data": { "status": "string", "approximateSubsidyAvailed": "string", "subsidizedRefillConsumed": "string", "pin": "string", "consumerEmail": "string", "distributorCode": "string", "bankName": "string", "ifscCode": "string", "cityTown": "string", "aadhaarNo": "string", "consumerContact": "string", "distributorAddress": "string", "consumerName": "string", "consumerNo": "string", "distributorName": "string", "bankAccountNo": "string", "givenUpSubsidy": "string", "consumerAddress": "string", "lastBookingDate": "string", "totalRefillConsumed": "string" }, "messages": [ "string" ], "request_id": "string", "isBillable": false }
400Bad Request
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 400
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 400 }
401Unauthorized
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 401
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 401 }
500Internal Server Error
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 500
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 500 }
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/api/v1/lpg-id/verify' \ -H 'X-API-KEY: YOUR_API_KEY' \ -H 'X-API-APP-ID: YOUR_APP_ID' \ -H 'Content-Type: application/json' \ -d '{ "consent": "Y", "consent_text": "I hear by declare my consent agreement for fetching my information via SignCare API", "lpgId": "10000000051234567" }'